<?php
include_once "BaseDAO.class.php";

class LoginDAO implements BaseDAO {
	
	/* Autentica o usuario. */
	public function autenticar($usuario) {
		$utility = QueryUtility::getInstance();
		
		try {
			$query = $utility->getQuery(QueryConstants::LOGIN,$usuario);
			$conexao = new Conexao();
			$result = $conexao->executar($query);
			$nvUsuario = $this->mapearResultados($result);
		} catch (Exception $exc) {
			throw $exc;			
		}
		
		if (isset($nvUsuario)) {
			return $nvUsuario;
		}
	}
	
	/* BaseDAO. Mapeia os resultados. Cria um objeto Usuario caso seja o resultado for positivo. */
	function mapearResultados($result) {
		if (pg_num_rows($result) != 1) {
			throw new Exception(MensagensConstants::NOME_SENHA_INVALIDOS);
		}
		
		$nome = pg_fetch_result($result,0,"usuario_login");
		$cidade = pg_fetch_result($result,0,"usuario_cidade");
		$estado = pg_fetch_result($result,0,"usuario_estado");

		$usuario = new Usuario();
		$usuario->setNome($nome);
		$usuario->setCidade($cidade);
		$usuario->setEstado($estado);
		
		return $usuario;
	}
	
}
?>